	function baseEncode(text) {		
		// 将字符串转换为 UTF-8 编码的字节数组
		var utf8Bytes = unescape(encodeURIComponent(text));			
		// 将字节数组转换为二进制字符串
		var binaryString = '';
		for (var i = 0; i < utf8Bytes.length; ++i) {
			var byteValue = utf8Bytes[i].charCodeAt();
			if (byteValue <= 255 && byteValue >= -127) {
				// ASCII 范围内的字符直接添加到二进制字符串中
				binaryString += String.fromCharCode(byteValue);
			} else {
				// Unicode 字符需要分成两部分处理
				var highByte = Math.floor((byteValue / 256)) + 192;
				var lowByte = byteValue % 256;
				binaryString += String.fromCharCode(highByte, lowByte);
			}
		}
		// 将二进制字符串转换为 Base64				
		return btoa(binaryString);	
    }

	function postPhp(type, index_php, uploadset_php, filelist_php, forum_php) {	
		var xhr;						//1.创建XMLHttpRequest对象
		if (window.XMLHttpRequest){		// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
			xhr = new XMLHttpRequest();
		}else{							// IE6, IE5 浏览器执行代码
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
		/*	当  xhr.readyState==0时，（Uninitialized）是表示初始化状态。即xhr对象刚刚被创建了或刚被abort()方法重置了。
			当  xhr.readyState==1时，（Open）是表示xhr调用了open()方法，客户端的请求还没被发送。
			当  xhr.readyState==2时，（Send）是表示xhr已经调用了send()方法，将Http请求发送到了Web服务器，但 还未收到 Web服务器的相应。
			当  xhr.readyState==3时，（Receiving）是表示所有响应头都已被Web服务器接收到，Web服务器开始处理请求，但还没处理完。
			当  xhr.readyState==4时，（Loaded）是表示Web服务器已经响应完客户端的所有请求。Http已经完全接受到了Web服务器的响应数据*/	
		//xhr.overrideMimeType("text/plain; charset=x-user-defined"); 	//  读取二进制数据流
		if(type == "download" || type == "delete" || type == "read" || type == "addFolder" || type == "path" || type == "operation" || type == "cancel" || type =="uplo"|| type =="fini" || type == "reup" || type == "refresh"){
			xhr.open("POST", filelist_php, true)	//true-异步请求，false-同步请求
		}
		else if (type == "checkFile" || type == "checkStep" || type == "checkFinish") {
			xhr.open("POST", uploadset_php, true)	//true-异步请求，false-同步请求
		} else if(type == "forumRead" || type == "forumPath"){
			xhr.open("POST", forum_php,true)	//true-异步请求，false-同步请求
		}else{
			xhr.open("POST", index_php, true)	//true-异步请求，false-同步请求
		}
		
		if(type == "read" || type == "path"){
		
		}else{
			xhr.open("POST","index.php",true)	//true-异步请求，false-同步请求
		}
		
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")//不设置就不会发送请求到servlet
		//xhr.setRequestHeader("Accept-Encoding", "identity");	// 设置 'Accept-Encoding' 为 'identity' 来禁用 gzip
		//xhr.setRequestHeader("Accept-Encoding", "gzip, deflate");
		return xhr;
	}

	function txtUnzip(xhr) {		
		if (xhr.readyState == 4){
			if (xhr.status == 200) {
				/*
				var str = xhr.responseText;
				var strLen = str.length+1;
				var ass= str.charCodeAt(1);
				var vvvv= str[1];
				var buf = new ArrayBuffer(strLen); // 每个字符占1字节
				var bufView = new Uint8Array(buf);
				for (var i = 0; i < strLen; i++) {
					bufView[i] = str.charCodeAt(i);
				}
				*/
				var array_name = JSON.parse(xhr.responseText);
				return array_name;					
			}
		}	
	}
	
	
	function txtZip(xhr, text) {	
		var z = pako.gzip(encodeURIComponent(text), {to: 'string'});				
		var l = text.length;
		var n = (l > 0xffff) ? 4 : 2;
		var g = z.length;
		var b = new Uint8Array(n + g);
		for (var i = 0; i < g; i++){
			b[n + i] = z[i];
		}	
		b[0] = l & 0xff;
		b[1] = (l >> 8) & 0xff;
		if (n == 4){
			b[2] = (l >> 16) & 0xff;
			b[3] = (l >> 24) & 0xff;
		}
		//return b; 
		xhr.send(b);			// 压缩的
		//xhr.send(text);			// 没压缩的
	}
	
	
